package com.iking.toolkit.system.dao;

import com.iking.toolkit.system.model.model.Menu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * menu(系统菜单) Mapper 接口
 *
 * @author user
 * @since 2022-10-09
 */
@Repository
@Mapper
public interface MenuMapper {

    int deleteByPrimaryKey(String fId);

    int insert(Menu record);

    int insertSelective(Menu record);

    Menu selectByPrimaryKey(String fId);

    int updateByPrimaryKeySelective(Menu record);

    int updateByPrimaryKey(Menu record);


    /**
     * @Description: 查询所有
     * @Param: []
     * @return: java.util.List<com.iking.member.system.model.TMenu>
     * @Author: wk
     * @Date: 13/2/2020 上午9:24
     */
    List<Menu> selectAll();

    /**
     * @Description: 查询某一级菜单下的最大序号
     * @Param: [fParentId]
     * @return: java.lang.Integer
     * @Author: wk
     * @Date: 13/2/2020 上午9:24
     */
    Integer selectMaxSort(String fParentId);

    /**
     * @Description: 递归设置子类菜单的级别
     * @Param: [fParentId, fLevel]
     * @return: void
     * @Author: wk
     * @Date: 13/2/2020 上午9:25
     */
    void updateLevelByParentId(@Param("fParentId") String fParentId, @Param("fLevel") Integer fLevel);

    /**
     * @Description: 获取子菜单
     * @Param: [fParentId]
     * @return: java.util.List<com.iking.member.system.model.TMenu>
     * @Author: wk
     * @Date: 13/2/2020 上午9:25
     */
    List<Menu> selectByParentId(@Param("fParentId") String fParentId);

    /**
     * @Description: 根据名称查询菜单信息
     * @Param: [fName]
     * @return: com.iking.member.system.model.TMenu
     * @Author: wk
     * @Date: 13/2/2020 上午9:25
     */
    Menu selectByName(@Param("fName") String fName);

    List<Menu> selectAllMenu(@Param("menuName") String menuName);

}
